42. Trapping Rain Water - LeetCode Solution


Array Stack

Python Code:

class Solution:
    def trap(self, height: List[int]) -> int:
        maxl = []
        maxr = []
        if(len(height) == 0):
            return 0

        maxl.append(height[-1])
        maxr.append(height[0])

        for i in range(1, len(height), 1):
            maxr.append(max(height[i], maxr[-1]))


        for i in range(len(height) - 2, -1, -1):
            maxl.append(max(height[i], maxl[-1]))


        count = 0

        maxl.reverse()


        for i in range(len(height)):
            count+= min(maxr[i], maxl[i]) - height[i]

        return count


Comments

Submit
0 Comments
More Questions

1178D - Prime Graph
1711D - Rain
534A - Exam
1472A - Cards for Friends
315A - Sereja and Bottles
1697C - awoo's Favorite Problem
165A - Supercentral Point
1493A - Anti-knapsack
1493B - Planet Lapituletti
747B - Mammoth's Genome Decoding
1591C - Minimize Distance
1182B - Plus from Picture
1674B - Dictionary
1426C - Increase and Copy
520C - DNA Alignment
767A - Snacktower
1365A - Matrix Game
714B - Filya and Homework
31A - Worms Evolution
1691A - Beat The Odds
433B - Kuriyama Mirai's Stones
892A - Greed
32A - Reconnaissance
1236D - Alice and the Doll
1207B - Square Filling
1676D - X-Sum
1679A - AvtoBus
1549A - Gregor and Cryptography
918C - The Monster
4B - Before an Exam